package com.boilermaker.springIoC;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

// 将对象储存至容器中
// 可以手动更改Bean的名称，更改后Spring自动生成的名字自动失效，多个名字使用{}
@Controller("UC")
/*
    下面的注解都可以用于将对象交给Spring管理，但也有区别
        @Controller：只有该注解可以用于接收参数，必须用于控制层，不可替换
        @Service：建议用于业务逻辑层
        @Repository：建议用于数据层
        @Configuration：建议用于项目的配置信息
    @Component 是上面注解的元注解，上面的注解是针对不同场景的细分。
    好比水杯和牙刷杯都可以称为杯子，但是它们有各自的应用场景。
 */
public class UserController {

    // 第一种依赖注入的方式：属性注入
    @Autowired
    private UserService userService;

    public void say() {
        System.out.println("控制层获取用户输入...");
        userService.say();
    }
}
